home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / QTML.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  5.3 KB  |  246 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        QTML.h
  3.  
  4.      Contains:    QuickTime Cross-platform specific interfaces
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1997-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __QTML__
  19. #define __QTML__
  20.  
  21. #ifndef __MACTYPES__
  22. #include <MacTypes.h>
  23. #endif
  24. #ifndef __MACMEMORY__
  25. #include <MacMemory.h>
  26. #endif
  27. #ifndef __MACWINDOWS__
  28. #include <MacWindows.h>
  29. #endif
  30. #ifndef __OSUTILS__
  31. #include <OSUtils.h>
  32. #endif
  33. #ifndef __FILES__
  34. #include <Files.h>
  35. #endif
  36.  
  37.  
  38.  
  39. #if PRAGMA_ONCE
  40. #pragma once
  41. #endif
  42.  
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.  
  47. #if PRAGMA_IMPORT
  48. #pragma import on
  49. #endif
  50.  
  51. #if PRAGMA_STRUCT_ALIGN
  52.     #pragma options align=mac68k
  53. #elif PRAGMA_STRUCT_PACKPUSH
  54.     #pragma pack(push, 2)
  55. #elif PRAGMA_STRUCT_PACK
  56.     #pragma pack(2)
  57. #endif
  58.  
  59. EXTERN_API( void )
  60. QTMLYieldCPU                    (void);
  61.  
  62. EXTERN_API( void )
  63. QTMLYieldCPUTime                (long                     milliSeconds,
  64.                                  unsigned long             flags);
  65.  
  66. #if !TARGET_OS_MAC
  67. typedef long                             QTMLMutex;
  68. typedef struct OpaqueQTMLSyncVar*         QTMLSyncVar;
  69. typedef QTMLSyncVar *                    QTMLSyncVarPtr;
  70.  
  71. enum {
  72.     kInitializeQTMLNoSoundFlag    = (1L << 0),                    /* flag for requesting no sound when calling InitializeQTML*/
  73.     kInitializeQTMLUseGDIFlag    = (1L << 1)                        /* flag for requesting GDI when calling InitializeQTML*/
  74. };
  75.  
  76.  
  77. enum {
  78.     kQTMLHandlePortEvents        = (1L << 0),                    /* flag for requesting requesting QTML to handle events*/
  79.     kQTMLNoIdleEvents            = (1L << 1)                        /* flag for requesting requesting QTML not to send Idle Events*/
  80. };
  81.  
  82. EXTERN_API( OSErr )
  83. InitializeQTML                    (long                     flag);
  84.  
  85. EXTERN_API( void )
  86. TerminateQTML                    (void);
  87.  
  88. EXTERN_API( GrafPtr )
  89. CreatePortAssociation            (void *                    theWnd,
  90.                                  Ptr                     storage,
  91.                                  long                     flags);
  92.  
  93. EXTERN_API( void )
  94. DestroyPortAssociation            (CGrafPtr                 cgp);
  95.  
  96. EXTERN_API( void )
  97. QTMLGrabMutex                    (QTMLMutex                 mu);
  98.  
  99. EXTERN_API( void )
  100. QTMLReturnMutex                    (QTMLMutex                 mu);
  101.  
  102. EXTERN_API( QTMLMutex )
  103. QTMLCreateMutex                    (void);
  104.  
  105. EXTERN_API( void )
  106. QTMLDestroyMutex                (QTMLMutex                 mu);
  107.  
  108. EXTERN_API( QTMLSyncVarPtr )
  109. QTMLCreateSyncVar                (void);
  110.  
  111. EXTERN_API( void )
  112. QTMLDestroySyncVar                (QTMLSyncVarPtr         p);
  113.  
  114. EXTERN_API( long )
  115. QTMLTestAndSetSyncVar            (QTMLSyncVarPtr         sync);
  116.  
  117. EXTERN_API( void )
  118. QTMLWaitAndSetSyncVar            (QTMLSyncVarPtr         sync);
  119.  
  120. EXTERN_API( void )
  121. QTMLResetSyncVar                (QTMLSyncVarPtr         sync);
  122.  
  123. EXTERN_API( void )
  124. InitializeQHdr                    (QHdr *                    qhdr);
  125.  
  126. EXTERN_API( void )
  127. TerminateQHdr                    (QHdr *                    qhdr);
  128.  
  129. EXTERN_API( void )
  130. QTMLAcquireWindowList            (void);
  131.  
  132. EXTERN_API( void )
  133. QTMLReleaseWindowList            (void);
  134.  
  135. /*
  136.    These routines are here to support "interrupt level" code
  137.       These are dangerous routines, only use if you know what you are doing.
  138. */
  139.  
  140. EXTERN_API( long )
  141. QTMLRegisterInterruptSafeThread    (unsigned long             threadID,
  142.                                  void *                    threadInfo);
  143.  
  144. EXTERN_API( long )
  145. QTMLUnregisterInterruptSafeThread (unsigned long         threadID);
  146.  
  147. EXTERN_API( long )
  148. NativeEventToMacEvent            (void *                    nativeEvent,
  149.                                  EventRecord *            macEvent);
  150.  
  151. #if TARGET_OS_WIN32
  152. EXTERN_API( long )
  153. WinEventToMacEvent                (void *                    winMsg,
  154.                                  EventRecord *            macEvent);
  155.  
  156. #define WinEventToMacEvent    NativeEventToMacEvent
  157. EXTERN_API( Boolean )
  158. IsTaskBarVisible                (void);
  159.  
  160. EXTERN_API( void )
  161. ShowHideTaskBar                    (Boolean                 showIt);
  162.  
  163.  
  164. enum {
  165.     kDDSurfaceLocked            = (1L << 0),
  166.     kDDSurfaceStatic            = (1L << 1)
  167. };
  168.  
  169. EXTERN_API( OSErr )
  170. QTGetDDObject                    (void **                lpDDObject);
  171.  
  172. EXTERN_API( OSErr )
  173. QTSetDDObject                    (void *                    lpNewDDObject);
  174.  
  175. EXTERN_API( OSErr )
  176. QTSetDDPrimarySurface            (void *                    lpNewDDSurface,
  177.                                  unsigned long             flags);
  178.  
  179. EXTERN_API( OSErr )
  180. QTMLGetVolumeRootPath            (char *                    fullPath,
  181.                                  char *                    volumeRootPath,
  182.                                  unsigned long             volumeRootLen);
  183.  
  184. EXTERN_API( void )
  185. QTMLSetWindowWndProc            (WindowPtr                 theWindow,
  186.                                  void *                    windowProc);
  187.  
  188. EXTERN_API( void *)
  189. QTMLGetWindowWndProc            (WindowPtr                 theWindow);
  190.  
  191. #endif  /* TARGET_OS_WIN32 */
  192.  
  193. EXTERN_API( OSErr )
  194. QTMLGetCanonicalPathName        (char *                    inName,
  195.                                  char *                    outName,
  196.                                  unsigned long             outLen);
  197.  
  198.  
  199. enum {
  200.     kFullNativePath                = 0,
  201.     kFileNameOnly                = (1 << 0),
  202.     kDirectoryPathOnly            = (1 << 1)
  203. };
  204.  
  205. EXTERN_API( OSErr )
  206. FSSpecToNativePathName            (const FSSpec *            inFile,
  207.                                  char *                    outName,
  208.                                  unsigned long             outLen,
  209.                                  long                     flags);
  210.  
  211. EXTERN_API( OSErr )
  212. NativePathNameToFSSpec            (char *                    inName,
  213.                                  FSSpec *                outFile,
  214.                                  long                     flags);
  215.  
  216. #endif  /*  !TARGET_OS_MAC */
  217.  
  218. #if TARGET_OS_MAC
  219.  
  220. #define QTMLYieldCPU()
  221. #define QTMLYieldCPUTime(a,b)
  222.  
  223. #endif  /* TARGET_OS_MAC */
  224.  
  225.  
  226. #if PRAGMA_STRUCT_ALIGN
  227.     #pragma options align=reset
  228. #elif PRAGMA_STRUCT_PACKPUSH
  229.     #pragma pack(pop)
  230. #elif PRAGMA_STRUCT_PACK
  231.     #pragma pack()
  232. #endif
  233.  
  234. #ifdef PRAGMA_IMPORT_OFF
  235. #pragma import off
  236. #elif PRAGMA_IMPORT
  237. #pragma import reset
  238. #endif
  239.  
  240. #ifdef __cplusplus
  241. }
  242. #endif
  243.  
  244. #endif /* __QTML__ */
  245.  
  246.